/*
 * Copyright (c) 2006-2021, RT-Thread Development Team
 *
 * SPDX-License-Identifier: Apache-2.0
 *
 * Change Logs:
 * Date           Author       Notes
 * 2023-10-01     FuLei       the first version
 */
#include "AD7190.h"
#include "DAQ.h"

/**********************函数描述*********************
* 创建人:   傅雷
* 创建时间: 2023.10.1
* 功能描述: 力值传感器，标定，计算
* 入口参数: void
* 函数返回: void
******************************************************/

void LoadData_Sensor(LoadDataFrm *pLoad)
{
    static rt_uint8_t firstflag = 0;
    // 1) adc filter 滤波处理
    if( firstflag == 0)
    {
        pLoad->pre_ad7190_adc = pLoad->cur_ad7190_adc ;
        pLoad->pre_realforce = pLoad->cur_realforce;            //这一段是不是应该放在37行之后， 第一次运行时cur_realforce的值为空    ？？？
        firstflag = 1;
    }
    pLoad->cur_ad7190_adc = pLoad->cur_ad7190_adc * pLoad->para_filter/20 + pLoad->pre_ad7190_adc * (20 - pLoad->para_filter) /20;

    // 2) 标定力值    y = (y1-y0)/(x1-x0)* (x-x0)+y0
    //    防止溢出    y = (y1-y0)* (x-x0) /(x1-x0) +y0
    pLoad->cur_realforce = ( pLoad->Y_force[1] - pLoad->Y_force[0] )* ( pLoad->cur_ad7190_adc - pLoad->X_adc[0] )
            /(pLoad->X_adc[1] - pLoad->X_adc[0])
            +pLoad->Y_force[0];

    // 3) 计算变化力速，更新力值
    pLoad->delta_force = pLoad->cur_realforce - pLoad->pre_realforce;
    pLoad->pre_realforce = pLoad->cur_realforce;

    // 4） 清零操作
}


void Move_SenseCtrl(LoadDataFrm *pLoad, CtrlDataFrm *pCtrl)
{
    switch(pCtrl->mode)
    {
        case 0:
        {

        }

        // 1：低速自动
        case CTRL_AUTO_SLOW_1:
        {
            break;
        }

        //  2：中速自动
        case CTRL_AUTO_MEDI_2:
        {
            break;
        }

        //  3：高速自动
        case CTRL_AUTO_HIGH_3:
        {
            break;
        }

        // 4：低速手动
        case CTRL_MANU_SLOW_4:
        {
            break;
        }

        //  5：中速手动 ，
        case CTRL_MANU_MEDI_5:
        {
            break;
        }

        //  6：高速手动
        case CTRL_MANU_HIGH_6:
        {
            break;
        }

        default:
            break;

    }

}





//
//void ManuCtrl(void)
//{
//    if( )
//
//}
//
//rt_uint8_t Up_Key(void)
//{
//    if(  rt_pin_read( GET_PIN(B,5) ) == PIN_LOW )
//    {
//
//    }
//
//}







